package sz.szsmk.citizencard.mvp.contract;

import java.util.List;

import sz.szsmk.citizencard.model.network.bean.response.FirstSearchUserLevelRes;
import sz.szsmk.citizencard.model.network.bean.response.GetOrderOpenidRes;
import sz.szsmk.citizencard.model.network.bean.response.GetTokenRes;
import sz.szsmk.citizencard.model.network.bean.response.HomeWhxfRes;
import sz.szsmk.citizencard.model.network.bean.response.IUserInfo;
import sz.szsmk.citizencard.model.network.bean.response.QueryNgFinanceRes;
import sz.szsmk.citizencard.model.network.bean.response.QueryOrderCountRes;
import sz.szsmk.citizencard.model.network.bean.response.QueryPageResourceRes;
import sz.szsmk.citizencard.model.network.bean.response.SeleciUserAuthRes;
import sz.szsmk.citizencard.model.network.bean.response.SignInRes;
import sz.szsmk.citizencard.model.network.bean.response.UserCardFavResponse;
import sz.szsmk.citizencard.ui.adapter.bean.AppHomeCardBean;
import sz.szsmk.citizencard.model.network.bean.response.CouponListBean;
import sz.szsmk.citizencard.ui.base.IBaseContact;

/**
 * Copyright (c)2018
 * author: zdh
 * created on: 2018/6/4 19:59
 * description:
 */
public interface IMineContact {

    interface IMinePresenter<T extends IBaseContact.IBaseView> extends IBaseContact.IBasePresenter {
        void getUserInfo();

        void queryUserCardFav();

        void getUserAdver();

        void getWhxfInfo();

        void getAccessToken();

        void getOrderOpenid(String access_token);

        void queryOrderCount();

        void selectUserAuth();

        void firstSearchUserLevel();

        void queryUserCredit();         //获取用户当前总积分

        void queryCouponCountSucc();       //查询各个类别可用优惠券的数量

        void userBehaviorBrowse(int id);

        void queryNgFinance(String type);//0不刷新 刷新

    }

    interface IMineView extends IBaseContact.IBaseView {
        // 获得数据失败
        void updataError(IUserInfo message);

        void getUserInfoSucc(IUserInfo response);

        void getUserInfoFail(IUserInfo response);

        void queryUserCardFavSucc(List<UserCardFavResponse.DataBean> beanList);

        void queryUserCardFavFaile();

        void getWhxfInfoSucc(List<HomeWhxfRes.CultureInforsBean> cultureInfors);

        void getWhxfInfoFail();

        void getUserAdverSucc(QueryPageResourceRes response);

        void getUserAdverFail();

        void getAccessTokenFail();

        void getAccessTokenSucc(GetTokenRes response);

        void getOrderOpenidFail();

        void getOrderOpenidSucc(GetOrderOpenidRes response, String type);

        void queryOrderCountFail(QueryOrderCountRes response);

        void queryOrderCountSucc(QueryOrderCountRes response);

        void selectUserAuthSucc(SeleciUserAuthRes response);

        void selectUserAuthFail();

        void seleUnlogin(IUserInfo response);

        void firstSearchUserLevelFail(FirstSearchUserLevelRes response);

        void firstSearchUserLevelSucc(AppHomeCardBean appHomeCardBean);

        void queryUserCreditSucc(SignInRes userCreditBean);

        void queryCouponCountSucc(CouponListBean couponListBean);

        void queryNgFinanceSucc(QueryNgFinanceRes queryNgFinanceRes);
    }

}
